package org.wicket.jbpm.engine.core;

import java.io.InputStream;
import java.util.List;

import org.wicket.jbpm.engine.workflow.WorkflowDefinition;
import org.wicket.jbpm.engine.workflow.WorkflowDeployment;

public interface WorkflowComponent {

    //
    // Workflow Definition Support
    //

    
    /**
     * Deploy a Workflow Definition
     * 
     * @param workflowDefinition  the content object containing the definition
     * @param mimetype (optional)  the mime type of the workflow definition
     * @return workflow deployment descriptor
     */
    public WorkflowDeployment deployDefinition(InputStream workflowDefinition, String mimetype);
    

    
    /**
     * Gets all deployed Workflow Definitions
     * 
     * @return  the deployed workflow definitions
     */
    public List<WorkflowDefinition> getDefinitions();
}
